﻿@page "/fetchdata"

@using DefaultBlazor.Server.Data
@inject WeatherForecastService ForecastService

<MudContainer MaxWidth="MaxWidth.ExtraLarge" Class="mt-16">
    <MudText Typo="Typo.h3" GutterBottom="true">Weather forecast</MudText>
    <MudText Class="mb-8">This component demonstrates fetching data from the server.</MudText>
    @if (forecasts == null)
    {
        <MudProgressCircular Color="Color.Default" Indeterminate="true" />
    }
    else
    {
        <MudTable Items="forecasts" Hover="true" SortLabel="Sort By" Elevation="0">
            <HeaderContent>
                <MudTh><MudTableSortLabel InitialDirection="SortDirection.Ascending" SortBy="new Func<WeatherForecast, object>(x=>x.Date)">Date</MudTableSortLabel></MudTh>
                <MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.TemperatureC)">Temp. (C)</MudTableSortLabel></MudTh>
                <MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.TemperatureF)">Temp. (F)</MudTableSortLabel></MudTh>
                <MudTh><MudTableSortLabel SortBy="new Func<WeatherForecast, object>(x=>x.Summary)">Summary</MudTableSortLabel></MudTh>
            </HeaderContent>
            <RowTemplate>
                <MudTd DataLabel="Date">@context.Date</MudTd>
                <MudTd DataLabel="Temp. (C)">@context.TemperatureC</MudTd>
                <MudTd DataLabel="Temp. (F)">@context.TemperatureF</MudTd>
                <MudTd DataLabel="Summary">@context.Summary</MudTd>
            </RowTemplate>
            <PagerContent>
                <MudTablePager PageSizeOptions="new int[]{50, 100}" />
            </PagerContent>
        </MudTable>
    }
</MudContainer>

@code {
    private WeatherForecast[] forecasts;

    protected override async Task OnInitializedAsync()
    {
        forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
    }
}
